package array

import "math"

func MajorityElement(nums []int) int {
	// 方法一 计数法 时间复杂度on  空间复杂度o1
	var count = 0
	candidate := -math.MaxInt32 // 候选众数
	for i := 0; i < len(nums); i++ {
		if count == 0 {
			candidate = nums[i]
		}
		if nums[i] == candidate {
			count++
		} else {
			count--
		}
	}
	return candidate
	// 方法二 hash表

	// 方法三 先排序 在判读中间数
}
